// wwtlib.Settings
import {ConstellationFilter} from './Constellation';


export function Settings() {
  this.autoRepeatTour = false;
  this._localHorizonMode = false;
  this._galacticMode = false;
  this._constellationBoundryColor = 'blue';
  this._constellationSelectionColor = 'yellow';
  this._constellationFigureColor = 'red';
  this._showConstellationFigures = true;
  this._showConstellationBoundries = true;
  this._showConstellationSelection = true;
  this._showCrosshairs = true;
  this._crosshairsColor = 'white';
  this._showEcliptic = false;
  this._locationLat = 47.717;
  this._locationLng = -122.0858;
  this._locationAltitude = 100;
  this._showFiledOfView = false;
  this._actualPlanetScale = true;
  this._fovCamera = 0;
  this._fovEyepiece = 0;
  this._fovTelescope = 0;
  this._showClouds = false;
  this._showGrid = false;
  this._showHorizon = true;
  this._showHorizonPanorama = false;
  this._showMoonsAsPointSource = true;
  this._showSolarSystem = true;
  this._solarSystemStars = true;
  this._solarSystemMilkyWay = true;
  this._solarSystemCosmos = true;
  this._solarSystemOrbits = true;
  this._solarSystemOverlays = true;
  this._solarSystemLighting = true;
  this._solarSystemMultiRes = true;
  this._solarSystemScale = 1;
  this._smoothPan = true;
  this._showElevationModel = true;
  this._showEquatorialGridText = false;
  this._showGalacticGrid = false;
  this._showGalacticGridText = false;
  this._showEclipticGrid = false;
  this._showEclipticGridText = false;
  this._showEclipticOverviewText = false;
  this._showAltAzGrid = false;
  this._showAltAzGridText = false;
  this._showPrecessionChart = false;
  this._showConstellationPictures = false;
  this._showConstellationLabels = false;
  this._solarSystemCMB = true;
  this._solarSystemMinorPlanets = false;
  this._solarSystemPlanets = true;
  this._showEarthSky = true;
  this._solarSystemMinorOrbits = false;
  this._constellationsEnabled = '';
  this._constellationFiguresFilter = new ConstellationFilter();
  this._constellationBoundariesFilter = new ConstellationFilter();
  this._constellationNamesFilter = new ConstellationFilter();
  this._constellationArtFilter = new ConstellationFilter();
  this._showSkyOverlays = true;
  this._showConstellations = true;
  this._showSkyNode = true;
  this._showSkyGrids = true;
  this._showSkyOverlaysIn3d = true;
  this._earthCutawayView = false;
  this._showISSModel = false;
  this._milkyWayModel = false;
  this._minorPlanetsFilter = 255;
  this._planetOrbitsFilter = 2147483647;
  this._constellations = true;
}
Settings.get_current = function() {
  if (Settings._active == null) {
    Settings._active = new Settings();
  }
  return Settings._active;
};
Settings.get_globalSettings = function() {
  if (Settings._active == null) {
    Settings._active = new Settings();
  }
  return Settings._active;
};
Settings.get_active = function() {
  if (Settings._active == null) {
    Settings._active = new Settings();
  }
  if (Settings.tourSettings != null) {
    return Settings.tourSettings;
  }
  return Settings._active;
};
export const Settings$ = {
  get_constellationFigureColor: function () {
    return this._constellationFigureColor;
  },
  set_constellationFigureColor: function (value) {
    this._constellationFigureColor = value;
    return value;
  },
  get_constellationBoundryColor: function () {
    return this._constellationBoundryColor;
  },
  set_constellationBoundryColor: function (value) {
    this._constellationBoundryColor = value;
    return value;
  },
  get_constellationSelectionColor: function () {
    return this._constellationSelectionColor;
  },
  set_constellationSelectionColor: function (value) {
    this._constellationSelectionColor = value;
    return value;
  },
  get_showCrosshairs: function () {
    return this._showCrosshairs;
  },
  set_showCrosshairs: function (value) {
    this._showCrosshairs = value;
    return value;
  },
  get_smoothPan: function () {
    return this._smoothPan;
  },
  set_smoothPan: function (value) {
    this._smoothPan = value;
    return value;
  },
  get_crosshairsColor: function () {
    return this._crosshairsColor;
  },
  set_crosshairsColor: function (value) {
    this._crosshairsColor = value;
    return value;
  },
  get_actualPlanetScale: function () {
    return this._actualPlanetScale;
  },
  set_actualPlanetScale: function (value) {
    this._actualPlanetScale = value;
    return value;
  },
  get_fovCamera: function () {
    return this._fovCamera;
  },
  get_fovEyepiece: function () {
    return this._fovEyepiece;
  },
  get_fovTelescope: function () {
    return this._fovTelescope;
  },
  get_locationAltitude: function () {
    return this._locationAltitude;
  },
  set_locationAltitude: function (value) {
    this._locationAltitude = value;
    return value;
  },
  get_locationLat: function () {
    return this._locationLat;
  },
  set_locationLat: function (value) {
    this._locationLat = value;
    return value;
  },
  get_locationLng: function () {
    return this._locationLng;
  },
  set_locationLng: function (value) {
    this._locationLng = value;
    return value;
  },
  get_showClouds: function () {
    return this._showClouds;
  },
  get_showConstellationBoundries: function () {
    return this._showConstellationBoundries;
  },
  set_showConstellationBoundries: function (value) {
    this._showConstellationBoundries = value;
    return value;
  },
  get_showConstellationFigures: function () {
    return this._showConstellationFigures;
  },
  set_showConstellationFigures: function (value) {
    this._showConstellationFigures = value;
    return value;
  },
  get_showConstellationSelection: function () {
    return this._showConstellationSelection;
  },
  set_showConstellationSelection: function (value) {
    this._showConstellationSelection = value;
    return value;
  },
  get_showEcliptic: function () {
    return this._showEcliptic;
  },
  set_showEcliptic: function (value) {
    this._showEcliptic = value;
    return value;
  },
  get_showElevationModel: function () {
    return this._showElevationModel;
  },
  set_showElevationModel: function (value) {
    this._showElevationModel = value;
    return value;
  },
  get_showFieldOfView: function () {
    return this._showFiledOfView;
  },
  get_showGrid: function () {
    return this._showGrid;
  },
  set_showGrid: function (value) {
    this._showGrid = value;
    return value;
  },
  get_showHorizon: function () {
    return this._showHorizon;
  },
  set_showHorizon: function (value) {
    this._showHorizon = value;
    return value;
  },
  get_showHorizonPanorama: function () {
    return this._showHorizonPanorama;
  },
  get_showMoonsAsPointSource: function () {
    return this._showMoonsAsPointSource;
  },
  get_showSolarSystem: function () {
    return this._showSolarSystem;
  },
  set_showSolarSystem: function (value) {
    this._showSolarSystem = value;
    return value;
  },
  get_localHorizonMode: function () {
    return this._localHorizonMode;
  },
  set_localHorizonMode: function (value) {
    this._localHorizonMode = value;
    return value;
  },
  get_galacticMode: function () {
    return this._galacticMode;
  },
  set_galacticMode: function (value) {
    this._galacticMode = value;
    return value;
  },
  get_solarSystemStars: function () {
    return this._solarSystemStars;
  },
  set_solarSystemStars: function (value) {
    this._solarSystemStars = value;
    return value;
  },
  get_solarSystemMilkyWay: function () {
    return this._solarSystemMilkyWay;
  },
  set_solarSystemMilkyWay: function (value) {
    this._solarSystemMilkyWay = value;
    return value;
  },
  get_solarSystemCosmos: function () {
    return this._solarSystemCosmos;
  },
  set_solarSystemCosmos: function (value) {
    this._solarSystemCosmos = value;
    return value;
  },
  get_solarSystemOrbits: function () {
    return this._solarSystemOrbits;
  },
  set_solarSystemOrbits: function (value) {
    this._solarSystemOrbits = value;
    return value;
  },
  get_solarSystemOverlays: function () {
    return this._solarSystemOverlays;
  },
  set_solarSystemOverlays: function (value) {
    this._solarSystemOverlays = value;
    return value;
  },
  get_solarSystemLighting: function () {
    return this._solarSystemLighting;
  },
  set_solarSystemLighting: function (value) {
    this._solarSystemLighting = value;
    return value;
  },
  get_solarSystemMultiRes: function () {
    return true;
  },
  set_solarSystemMultiRes: function (value) {
    this._solarSystemMultiRes = value;
    return value;
  },
  get_solarSystemScale: function () {
    return this._solarSystemScale;
  },
  set_solarSystemScale: function (value) {
    this._solarSystemScale = value;
    return value;
  },
  get_showEquatorialGridText: function () {
    return this._showEquatorialGridText;
  },
  set_showEquatorialGridText: function (value) {
    this._showEquatorialGridText = value;
    return value;
  },
  get_showGalacticGrid: function () {
    return this._showGalacticGrid;
  },
  set_showGalacticGrid: function (value) {
    this._showGalacticGrid = value;
    return value;
  },
  get_showGalacticGridText: function () {
    return this._showGalacticGridText;
  },
  set_showGalacticGridText: function (value) {
    this._showGalacticGridText = value;
    return value;
  },
  get_showEclipticGrid: function () {
    return this._showEclipticGrid;
  },
  set_showEclipticGrid: function (value) {
    this._showEclipticGrid = value;
    return value;
  },
  get_showEclipticGridText: function () {
    return this._showEclipticGridText;
  },
  set_showEclipticGridText: function (value) {
    this._showEclipticGridText = value;
    return value;
  },
  get_showEclipticOverviewText: function () {
    return this._showEclipticOverviewText;
  },
  set_showEclipticOverviewText: function (value) {
    this._showEclipticOverviewText = value;
    return value;
  },
  get_showAltAzGrid: function () {
    return this._showAltAzGrid;
  },
  set_showAltAzGrid: function (value) {
    this._showAltAzGrid = value;
    return value;
  },
  get_showAltAzGridText: function () {
    return this._showAltAzGridText;
  },
  set_showAltAzGridText: function (value) {
    this._showAltAzGridText = value;
    return value;
  },
  get_showPrecessionChart: function () {
    return this._showPrecessionChart;
  },
  set_showPrecessionChart: function (value) {
    this._showPrecessionChart = value;
    return value;
  },
  get_showConstellationPictures: function () {
    return this._showConstellationPictures;
  },
  set_showConstellationPictures: function (value) {
    this._showConstellationPictures = value;
    return value;
  },
  get_showConstellationLabels: function () {
    return this._showConstellationLabels;
  },
  set_showConstellationLabels: function (value) {
    this._showConstellationLabels = value;
    return value;
  },
  get_solarSystemCMB: function () {
    return this._solarSystemCMB;
  },
  set_solarSystemCMB: function (value) {
    this._solarSystemCMB = value;
    return value;
  },
  get_solarSystemMinorPlanets: function () {
    return this._solarSystemMinorPlanets;
  },
  set_solarSystemMinorPlanets: function (value) {
    this._solarSystemMinorPlanets = value;
    return value;
  },
  get_solarSystemPlanets: function () {
    return this._solarSystemPlanets;
  },
  set_solarSystemPlanets: function (value) {
    this._solarSystemPlanets = value;
    return value;
  },
  get_showEarthSky: function () {
    return this._showEarthSky;
  },
  set_showEarthSky: function (value) {
    this._showEarthSky = value;
    return value;
  },
  get_solarSystemMinorOrbits: function () {
    return this._solarSystemMinorOrbits;
  },
  set_solarSystemMinorOrbits: function (value) {
    this._solarSystemMinorOrbits = value;
    return value;
  },
  get_constellationsEnabled: function () {
    return this._constellationsEnabled;
  },
  set_constellationsEnabled: function (value) {
    this._constellationsEnabled = value;
    return value;
  },
  get_constellationFiguresFilter: function () {
    return this._constellationFiguresFilter;
  },
  set_constellationFiguresFilter: function (value) {
    this._constellationFiguresFilter = value;
    return value;
  },
  get_constellationBoundariesFilter: function () {
    return this._constellationBoundariesFilter;
  },
  set_constellationBoundariesFilter: function (value) {
    this._constellationBoundariesFilter = value;
    return value;
  },
  get_constellationNamesFilter: function () {
    return this._constellationNamesFilter;
  },
  set_constellationNamesFilter: function (value) {
    this._constellationNamesFilter = value;
    return value;
  },
  get_constellationArtFilter: function () {
    return this._constellationArtFilter;
  },
  set_constellationArtFilter: function (value) {
    this._constellationArtFilter = value;
    return value;
  },
  get_showSkyOverlays: function () {
    return this._showSkyOverlays;
  },
  set_showSkyOverlays: function (value) {
    this._showSkyOverlays = value;
    return value;
  },
  get_showConstellations: function () {
    return this._showConstellations;
  },
  set_showConstellations: function (value) {
    this._showConstellations = value;
    return value;
  },
  get_showSkyNode: function () {
    return this._showSkyNode;
  },
  set_showSkyNode: function (value) {
    this._showSkyNode = value;
    return value;
  },
  get_showSkyGrids: function () {
    return this._showSkyGrids;
  },
  set_showSkyGrids: function (value) {
    this._showSkyGrids = value;
    return value;
  },
  get_showSkyOverlaysIn3d: function () {
    return this._showSkyOverlaysIn3d;
  },
  set_showSkyOverlaysIn3d: function (value) {
    this._showSkyOverlaysIn3d = value;
    return value;
  },
  get_earthCutawayView: function () {
    return this._earthCutawayView;
  },
  set_earthCutawayView: function (value) {
    this._earthCutawayView = value;
    return value;
  },
  get_showISSModel: function () {
    return this._showISSModel;
  },
  set_showISSModel: function (value) {
    this._showISSModel = value;
    return value;
  },
  get_milkyWayModel: function () {
    return this._milkyWayModel;
  },
  set_milkyWayModel: function (value) {
    this._milkyWayModel = value;
    return value;
  },
  get_minorPlanetsFilter: function () {
    return this._minorPlanetsFilter;
  },
  set_minorPlanetsFilter: function (value) {
    this._minorPlanetsFilter = value;
    return value;
  },
  get_planetOrbitsFilter: function () {
    return this._planetOrbitsFilter;
  },
  set_planetOrbitsFilter: function (value) {
    this._planetOrbitsFilter = value;
    return value;
  },
  get_constellations: function () {
    return this._constellations;
  },
  set_constellations: function (value) {
    this._constellations = value;
    return value;
  },
  getSetting: function (type) {
    if (type === 17) {
      return new SettingParameter(true, 0, !!0, null);
    }
    return new SettingParameter(false, 1, false, null);
  }
};


export function SettingParameter(edgeTrigger, opacity, targetState, filter) {
  this.targetState = false;
  this.edgeTrigger = false;
  this.opacity = 0;
  this.edgeTrigger = edgeTrigger;
  this.opacity = opacity;
  this.targetState = targetState;
  this.filter = filter;
}
export const SettingParameter$ = {};
